안녕하세요 에듀이노입니다.
해당 매트릭스의 핀 할당을 개별로 해주시길 권장드립니다.
핀번호를 공동으로 사용시 내용이 겹칠 수 있는 점 참고 부탁드립니다.
여려개의제품을 같이 결합하신 경우이므로 개별로 핀배열과 핀할당을 잘 고려하셔야합니다.
감사합니다.
[ Original Message ]
저희가 매트릭스 led를 여러개 사서 연결을 하려는데 2개는 잘 작동하지만 3개를 연결하면 첫번째와 3번째가 같은 글자가나오는데 어떻게 해야하나요?? 코드도 같이 보낼테니 확인해주시면 감사하겠습니다. 사진에서 보면 같은글씨가 첫번째와 세번째입니다.
#include <LedControl.h>
LedControl lc=LedControl(2,4,3,12);
// DIN 핀을 12번에 CS 핀을 10번에 CLK핀을 11번에 연결해줌
// (DIN, CLK, CS, 연결할 도트 매트릭스의 개수)
#define A { \
{0, 0, 0, 0, 0, 0, 0, 1}, \
{0, 1, 1, 0, 0, 1, 0, 1}, \
{1, 0, 0, 1, 0, 1, 0, 1}, \
{1, 0, 0, 1, 1, 1, 0, 1}, \
{1, 0, 0, 1, 0, 1, 0, 1}, \
{1, 0, 0, 1, 0, 1, 0, 1}, \
{0, 1, 1, 0, 0, 1, 0, 1}, \
{0, 0, 0, 0, 0, 0, 0, 1} \
}
#define B { \
{0, 0, 1, 1, 1, 1, 1, 0},\
{0, 0, 1, 0, 0, 0, 0, 0},\
{0, 0, 1, 0, 0, 0, 0, 0},\
{0, 0, 1, 1, 1, 1, 1, 0},\
{0, 0, 0, 0, 0, 0, 0, 0},\
{0, 1, 1, 1, 1, 1, 1, 1},\
{0, 0, 0, 1, 0, 1, 0, 0},\
{0, 0, 0, 1, 0, 1, 0, 0},\
}
#define C { \
{0, 0, 0, 0, 0, 0, 1, 0},\
{0, 0, 1, 1, 0, 0, 1, 0},\
{0, 1, 0, 0, 1, 0, 1, 0},\
{0, 1, 0, 0, 1, 0, 1, 0},\
{0, 1, 0, 0, 1, 0, 1, 0},\
{0, 1, 0, 0, 1, 0, 1, 0},\
{0, 0, 1, 1, 0, 0, 1, 0},\
{0, 0, 0, 0, 0, 0, 1, 0},\
}
#define D { \
{0, 1, 0, 0, 0, 0, 0, 0},\
{0, 1, 0, 0, 0, 0, 0, 0},\
{0, 1, 0, 0, 0, 0, 0, 0},\
{0, 1, 0, 0, 0, 0, 0, 0},\
{0, 1, 1, 1, 1, 1, 1, 0},\
{0, 0, 0, 1, 0, 0, 0, 0},\
{0, 0, 0, 1, 0, 0, 0, 0},\
{1, 1, 1, 1, 1, 1, 1, 1},\
}
#define E { \
{0, 0, 0, 1, 0, 0, 0, 1}, \
{0, 1, 1, 1, 0, 1, 0, 1}, \
{1, 1, 1, 1, 0, 1, 0, 1}, \
{1, 1,.1, 1, 1, 1, 0, 1}, \
{1, 1, 1, 1, 0, 1, 0, 1}, \
{1, 1, 1, 1, 0, 1, 0, 1}, \
{0, 1, 1, 0, 0, 1, 0, 1}, \
{0, 0, 0, 0, 0, 0, 0, 1} \
}
#define F { \
{0, 0, 1, 1, 1, 1, 1, 0},\
{0, 0, 1, 0, 0, 0, 0, 0},\
{0, 0, 1, 0, 0, 0, 0, 0},\
{0, 0, 1, 1, 1, 1, 1, 0},\
{0, 0, 0, 0, 0, 0, 0, 0},\
{0, 1, 1, 1, 1, 1, 1, 1},\
{0, 0, 0, 1, 0, 1, 0, 0},\
{0, 0, 0, 1, 0, 1, 0, 0},\
}
#define G { \
{0, 0, 0, 0, 0, 0, 1, 0},\
{0, 0, 1, 1, 0, 0, 1, 0},\
{0, 1, 0, 0, 1, 0, 1, 0},\
{0, 1, 0, 0, 1, 0, 1, 0},\
{0, 1, 0, 0, 1, 0, 1, 0},\
{0, 1, 0, 0, 1, 0, 1, 0},\
{0, 0, 1, 1, 0, 0, 1, 0},\
{0, 0, 0, 0, 0, 0, 1, 0},\
}
#define H { \
{0, 1, 0, 0, 0, 1, 0, 0},\
{0, 1, 0, 0, 0, 1, 0, 0},\
{0, 1, 0, 0, 0, 1, 0, 0},\
{0, 1, 0, 0, 0, 1, 0, 0},\
{0, 1, 1, 1, 1, 1, 1, 0},\
{0, 0, 0, 1, 0, 0, 0, 0},\
{0, 0, 0, 1, 0, 0, 0, 0},\
{1, 1, 1, 1, 1, 1, 1, 1},\
}
#define I { \
{0, 0, 0, 0, 0, 0, 0, 1}, \
{0, 1, 1, 0, 0, 1, 0, 1}, \
{1, 0, 0, 1, 0, 1, 0, 1}, \
{1, 0, 0, 1, 1, 1, 0, 1}, \
{1, 0, 0, 1, 0, 1, 0, 1}, \
{1, 0, 0, 1, 0, 1, 0, 1}, \
{0, 1, 1, 0, 0, 1, 0, 1}, \
{0, 0, 0, 0, 0, 0, 0, 1} \
}
#define J { \
{0, 0, 1, 1, 1, 1, 1, 0},\
{0, 0, 1, 0, 0, 0, 0, 0},\
{0, 0, 1, 0, 0, 0, 0, 0},\
{0, 0, 1, 1, 1, 1, 1, 0},\
{0, 0, 0, 0, 0, 0, 0, 0},\
{0, 1, 1, 1, 1, 1, 1, 1},\
{0, 0, 0, 1, 0, 1, 0, 0},\
{0, 0, 0, 1, 0, 1, 0, 0},\
}
#define K { \
{0, 0, 0, 0, 0, 0, 0, 0},\
{0, 0, 1, 1, 0, 0, 0, 0},\
{0, 1, 0, 0, 1, 0, 0, 0},\
{0, 1, 0, 0, 1, 0, 0, 0},\
{0, 1, 0, 0, 1, 0, 0, 0},\
{0, 1, 0, 0, 1, 0, 0, 0},\
{0, 0, 1, 1, 0, 0, 0, 0},\
{0, 0, 0, 0, 0, 0, 0, 0},\
}
#define L { \
{0, 1, 0, 0, 0, 0, 0, 0},\
{0, 1, 0, 0, 0, 0, 0, 0},\
{0, 1, 0, 0, 0, 0, 0, 0},\
{0, 1, 0, 0, 0, 0, 0, 0},\
{0, 1, 1, 1, 1, 1, 1, 0},\
{0, 0, 0, 1, 0, 0, 0, 0},\
{0, 0, 0, 1, 0, 0, 0, 0},\
{1, 1, 1, 1, 1, 1, 1, 1},\
}
byte patterns[12][8][8] = { A, B, C, D, E, F, G, H, I, J, K, L };
// 위에서 정의한 led 모양을 patterns에 입력해 주기
void setup()
{
for(int i=0; i<12; i++){ // 도트 매트릭스 0~3번
lc.shutdown(i,false); // 디스플레이 초기화
lc.setIntensity(i,8); // 도트 매트릭스 밝기 (매트릭스 번호, 밝기) 1~15
lc.clearDisplay(i); // led 를 전체 꺼주는 함수
}
}
void clean(){ // 전체led를 꺼주는 함수
for(int i = 0; i < 12; i++)
lc.clearDisplay(i);// clear screen
}
void loop(){
int pattern = 12;
int row, col, i;
for(i = 0; i <12; i++){ // 총 4글자 반복
for (row = 0; row < 8; row++) { // row 출력
for (col=0; col < 8; col++){ // col 출력
if (patterns[i][7 - col][7 - row] == 1)
// 위의 배열에서 1일때 해당되는 위치 불빛 켜주기
lc.setLed(i, col, row, true);
else // 위 배열에서 0일때 해당되는 위치 불빛 꺼주기
lc.setLed(i, col, row, false);
}
}
}
}